In a "jog operation", an operator operates a movement instructing device to manually move a robot to a certain position and pose. The jog operation is used when the operator manually moves the robot optionally in an optional coordinate system such as a joint coordinate system or an orthogonal coordinate system. Further, a coordinate system set at an acting point of an actuator which is mounted on a mechanical interface is called "a tool coordinate system". The jog operation in the tool coordinate system is called "a tool jog". Moreover, in a "hand alignment operation", instructions are practiced from a movement instructing device by the operator, to move a pose of a hand of a robot so as to automatically be brought to a predetermined pose, without a change of a present position of the hand of the robot. The hand alignment operation is chiefly used together with the tool jog and is utilized when the operator moves the tool to a position close to an operation objective article to teach position and pose to the hand.
Here, a coordinate system set on a base mounting surface of the robot is called "a base coordinate system". A position of the hand of the robot is expressed by a position of an origin of the tool coordinate system on the base coordinate system, and is mentioned as (X, Y, Z). Further, a pose of the hand of the robot is expressed by rotation of the tool coordinate system on the base coordinate system Generally, the pose of the hand of the robot is expressed by (A, B, C), using a Euler's angle inscription. Accordingly, the position and pose of the hand of the robot are expressed by (X, Y, Z, A, B, C).
FIG. 34 of the attached drawings is a block diagram showing hand alignment operation of a conventional control system for a robot. In FIG. 34, a teaching box 1 is provided with a hand alignment command section 2. The reference numeral 3 denotes a control unit for the robot. A hand-alignment movement-amount computing section 4 computes an amount of movement of each axis of the robot at the hand alignment operation. A drive section 5 commands operation directly to a robot body 8. A current-position or present-position data memory section 6 stores therein a present position of the hand of the robot, which results from driving of the robot. A present-pose data memory section 7 stores therein a present pose of the hand of the robot, which results from driving of the robot. FIGS. 35 and 36 describe FIG. 34 from the viewpoint of software. FIG. 35 illustrates a data structure, while FIG. 36 illustrates a flow (F36) of a program.
Operation of the conventional control system for the robot will next be described. In FIG. 34, the drive section 5 always stores a current or present position (35-1) of the hand of the robot into the present-position data memory section 6, and stores the present pose (35-3) of the hand of the robot into the present-pose data memory section 7, as shown in step S36-1. First, in step S36-2, an operator instructs the hand alignment operation by means of the teaching box 1. The hand alignment command section 2 outputs a hand alignment command (35-4) to the hand-alignment movement-amount computing section 4. In step S36-3, the hand-alignment movement-amount computing section 4 fetches pose data (35-3) out of the present-pose data memory section 7, and fetches position data (35-1) out of the present-position data memory section 6. In step S36-4, the hand-alignment movement-amount computing section 4 draws up or prepares movement-destination position and pose data (35-2) on the basis of the fetched position data and pose data, such that the pose of the hand is made parallel with or perpendicular to each axis of X, Y and Z in the base coordinate system. The prepared movement-destination position and pose data (35-2) are outputted to the drive section 5.
That is, assuming that the present position is (Xc, Yc, Zc), the present pose is (Ac, Bc, Cc), and the movement-destination position and pose due to the computing results are (X, Y, Z, A, B, C), the following relations are produced: In this connection, is an operator expressing an integer division. EQU X=Xc EQU Y=Yc EQU z=Zc EQU In case of Ac.gtoreq.0: A=90.degree..times.((Ac+45.degree.) 90.degree.) EQU In case of Ac&lt;0: A=90.degree..times.((Ac-45.degree.) 90.degree.) EQU In case of Bc.gtoreq.0: B=90.degree..times.((Bc+45.degree.) 90.degree.) EQU In case of Bc&lt;0: B=90.degree..times.((Bc-45.degree.) 90.degree.) EQU In case of Cc.gtoreq.0: C=90.degree..times.((Cc+45.degree.) 90.degree.) EQU In case of Cc&lt;0: C=90.degree..times.((Cc-45.degree.) 90.degree.)
Lastly, in step S36-5, the drive section 5 drives the robot 8 to the movement-destination position and pose.
The conventional control system for the robot is arranged as described above. Accordingly, in the case where it is desired to teach a plurality of positions and poses at the same pose, if the pose of the hand is not in parallel with or perpendicular to each axis of X, Y and Z in the base coordinate system, it is required that an operator regulates or adjusts the pose of the hand by the jog operation after the hand alignment operation.
Further, it is difficult to accurately set an operation surface of the robot so as to be brought in parallel with or perpendicular to each axis of X, Y and z in the base coordinate system. Only execution of the hand alignment operation by the operator makes it possible to bring the hand to the pose of the hand required for teaching.